Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>MicroPython</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/MicroPython"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/ext.pygments.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-MicroPython rootpage-MicroPython skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">MicroPython</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<p class="mw-empty-elt">
</p>
<style data-mw-deduplicate="TemplateStyles:r1295905060">
/* start https://en.wikipedia.org/ */


.mw-parser-output .infobox-subbox{padding:0;border:none;margin:-3px;width:auto;min-width:100%;font-size:100%;clear:none;float:none;background-color:transparent}.mw-parser-output .infobox-3cols-child{margin:auto}.mw-parser-output .infobox .navbar{font-size:100%}@media screen{html.skin-theme-clientpref-night .mw-parser-output .infobox-full-data:not(.notheme)>div:not(.notheme)[style]{background:#1f1f23!important;color:#f8f9fa}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .infobox-full-data:not(.notheme)>div:not(.notheme)[style]{background:#1f1f23!important;color:#f8f9fa}}@media(min-width:640px){body.skin--responsive .mw-parser-output .infobox-table{display:table!important}body.skin--responsive .mw-parser-output .infobox-table>caption{display:table-caption!important}body.skin--responsive .mw-parser-output .infobox-table>tbody{display:table-row-group}body.skin--responsive .mw-parser-output .infobox-table th,body.skin--responsive .mw-parser-output .infobox-table td{padding-left:inherit;padding-right:inherit}}


/* end https://en.wikipedia.org/ */
</style><table class="infobox vevent"><tbody><tr><th colspan="2" class="infobox-above summary">MicroPython</th></tr><tr><td colspan="2" class="infobox-image logo"><span typeof="mw:File"></span></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="Programmer" title="Programmer">Developer(s)</a></th><td class="infobox-data">Damien P. George</td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;">Initial release</th><td class="infobox-data">3&nbsp;May 2014<span style="display:none">&nbsp;(<span class="bday dtstart published updated">2014-05-03</span>)</span></td></tr><tr style="display: none;"><td colspan="2" class="infobox-full-data"></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="Software_release_life_cycle" title="Software release life cycle">Stable release</a></th><td class="infobox-data"><div style="margin:0px;">1.25.0&nbsp;
/ 15 April 2025<span style="display:none">&nbsp;(<span class="bday dtstart published updated">15 April 2025</span>)</span></div></td></tr><tr style="display:none"><td colspan="2">
</td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="Repository_(version_control)" title="Repository (version control)">Repository</a></th><td class="infobox-data"><style data-mw-deduplicate="TemplateStyles:r1126788409">
/* start https://en.wikipedia.org/ */


.mw-parser-output .plainlist ol,.mw-parser-output .plainlist ul{line-height:inherit;list-style:none;margin:0;padding:0}.mw-parser-output .plainlist ol li,.mw-parser-output .plainlist ul li{margin-bottom:0}


/* end https://en.wikipedia.org/ */
</style><div class="plainlist"><ul><li><span class="url"><a rel="nofollow" class="external text" href="https://github.com/micropython/micropython">github<wbr>.com<wbr>/micropython<wbr>/micropython</a></span> </li></ul>
</div></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;">Written in</th><td class="infobox-data"><a href="C_(programming_language)" title="C (programming language)">C</a></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="Computing_platform" title="Computing platform">Platform</a></th><td class="infobox-data"><a href="ARM_Cortex-M" title="ARM Cortex-M">ARM Cortex-M</a>, <a href="STM32" title="STM32">STM32</a>, <a href="ESP8266" title="ESP8266">ESP8266</a>, <a href="ESP32" title="ESP32">ESP32</a>, 16-bit <a href="PIC_microcontrollers" title="PIC microcontrollers">PIC</a>, <a href="Unix" title="Unix">Unix</a>, <a href="Microsoft_Windows" title="Microsoft Windows">Microsoft Windows</a>, <a href="Zephyr_(operating_system)" title="Zephyr (operating system)">Zephyr</a>, <a href="JavaScript" title="JavaScript">JavaScript</a>, <a href="RP2040" title="RP2040">RP2040</a></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="Software_license" title="Software license">License</a></th><td class="infobox-data"><a href="MIT_license" class="mw-redirect" title="MIT license">MIT license</a><sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;">Website</th><td class="infobox-data"><span class="url"><a rel="nofollow" class="external text" href="https://micropython.org">micropython<wbr>.org</a></span></td></tr></tbody></table>
<p><b>MicroPython</b> is a <a href="Software" title="Software">software</a> implementation of a <a href="Programming_language" title="Programming language">programming language</a> largely compatible with <a href="Python_(programming_language)" title="Python (programming language)">Python</a> 3, written in <a href="C_(programming_language)" title="C (programming language)">C</a>, that is optimized to run on a <a href="Microcontroller" title="Microcontroller">microcontroller</a>.<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>
</p><p>MicroPython consists of a Python compiler to bytecode and a runtime interpreter of that bytecode. The user is presented with an interactive prompt (the <a href="Read%E2%80%93eval%E2%80%93print_loop" title="Read–eval–print loop">REPL</a>) to execute supported commands immediately. Included are a selection of core Python libraries; MicroPython includes modules which give the programmer access to low-level hardware.<sup id="cite_ref-MP-Website_4-0" class="reference"><a href="#cite_note-MP-Website-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup>
</p><p>MicroPython does have an <a href="Inline_assembler" title="Inline assembler">inline assembler</a>, which lets the code run at full speed, but it is not portable across different microcontrollers.
</p><p>The source code for the project is available on <a href="GitHub" title="GitHub">GitHub</a> under the <a href="MIT_License" title="MIT License">MIT License</a>.<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup>
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="History">History</h2></div>

<p>MicroPython was originally created by the Australian programmer Damien George, after a successful <a href="Kickstarter" title="Kickstarter">Kickstarter</a>-backed campaign in 2013.<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> The original Kickstarter campaign released MicroPython with an <a href="STM32#STM32_F4" title="STM32">STM32F4</a>-powered development board "pyboard". In the meantime MicroPython has been developed to support a number of <a href="ARM_architecture" class="mw-redirect" title="ARM architecture">ARM</a> based architectures.<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup>
The ports supported in the mainline are ARM Cortex-M (many <a href="STM32" title="STM32">STM32</a><sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup>
boards, <a href="RP2040" title="RP2040">RP2040</a> boards, TI CC3200/WiPy, Teensy boards, Nordic nRF series, SAMD21 and SAMD51), <a href="ESP8266" title="ESP8266">ESP8266</a>, <a href="ESP32" title="ESP32">ESP32</a>,<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup>
16-bit PIC, Unix, Windows, Zephyr, and JavaScript.<sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup>
Also, there are many forks for a variety of systems and hardware platforms not supported in the mainline.<sup id="cite_ref-11" class="reference"><a href="#cite_note-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup>
</p><p>In 2016, a version of MicroPython for the <a href="BBC" title="BBC">BBC</a> <a href="Micro_Bit" title="Micro Bit">Micro Bit</a> was created as part of the <a href="Python_Software_Foundation" title="Python Software Foundation">Python Software Foundation</a>'s contribution to the Micro Bit partnership with the BBC.<sup id="cite_ref-12" class="reference"><a href="#cite_note-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup>
</p><p>In July 2017, MicroPython was forked to create <a href="CircuitPython" title="CircuitPython">CircuitPython</a>, a version of MicroPython with emphasis on education and ease of use. MicroPython and CircuitPython support somewhat different sets of hardware (e.g. CircuitPython supports <a href="Atmel" title="Atmel">Atmel</a> SAM D21 and D51 boards, but dropped support for ESP8266). As of version 4.0, CircuitPython is based on MicroPython version 1.9.4.<sup id="cite_ref-13" class="reference"><a href="#cite_note-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup>
</p><p>In 2017, <a href="Microsemi" title="Microsemi">Microsemi</a> made a MicroPython port for <a href="RISC-V" title="RISC-V">RISC-V</a> (RV32 and RV64) architecture.<sup id="cite_ref-14" class="reference"><a href="#cite_note-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup>
</p><p>In April 2019, a version of MicroPython for the <a href="Lego_Mindstorms_EV3" title="Lego Mindstorms EV3">Lego Mindstorms EV3</a> was created.<sup id="cite_ref-15" class="reference"><a href="#cite_note-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup>
</p><p>In January 2021, a MicroPython port for the RP2040 (ARM Cortex-M0+, on <a href="Raspberry_Pi_Pico" class="mw-redirect" title="Raspberry Pi Pico">Raspberry Pi Pico</a> and others) was created.<sup id="cite_ref-16" class="reference"><a href="#cite_note-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Features">Features</h2></div>
<div class="mw-heading mw-heading3"><h3 id="Ability_to_run_Python">Ability to run Python</h3></div>
<p>MicroPython has the ability to run Python, allowing users to create simple and easy-to-understand programs.<sup id="cite_ref-:0_17-0" class="reference"><a href="#cite_note-:0-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup> MicroPython supports many standard Python libraries, supporting more than 80% of the features of Python's most used libraries.<sup id="cite_ref-:0_17-1" class="reference"><a href="#cite_note-:0-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup> MicroPython was designed specifically to support the typical performance gap between microcontrollers and Python.<sup id="cite_ref-:1_18-0" class="reference"><a href="#cite_note-:1-18"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup> Python code is able to directly access and interact with hardware, with increased hardware possibilities that are not available using a normal Python application that is run on an <a href="Operating_system" title="Operating system">operating system</a>.<sup id="cite_ref-:2_19-0" class="reference"><a href="#cite_note-:2-19"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Code_portability">Code portability</h3></div>
<p>MicroPython's utilisation of <a href="Hardware_Abstraction_Layer" class="mw-redirect" title="Hardware Abstraction Layer">hardware abstraction layer</a> (HAL) technology allows developed code to be portable among different microcontrollers within the same family or platform and on devices that support and can download MicroPython. Programs are often developed and tested on high-performance microcontrollers and distributed with the final application used on lower-performance microcontrollers.<sup id="cite_ref-:3_20-0" class="reference"><a href="#cite_note-:3-20"><span class="cite-bracket">[</span>20<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Modules">Modules</h3></div>
<p>MicroPython offers functionality, once new code has been written, to create a frozen module and use it as a library which can be a part of developed <a href="Firmware" title="Firmware">firmware</a>. This feature assists with avoiding repetitive downloading of the same, already error-free, tested code into a MicroPython environment. This type of module will be saved to a microcontroller's modules directory for <a href="Compiler" title="Compiler">compiling</a> and uploading to the microcontroller where the library will be available using Python's import command to be used repeatedly.<sup id="cite_ref-:3_20-1" class="reference"><a href="#cite_note-:3-20"><span class="cite-bracket">[</span>20<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Read–eval–print_loop">Read–eval–print loop</h3></div>
<p>The <a href="Read%E2%80%93eval%E2%80%93print_loop" title="Read–eval–print loop">read–eval–print loop</a> (REPL) allows a developer to enter individual lines of code and have them run immediately on a <a href="Terminal_emulator" title="Terminal emulator">terminal</a>.<sup id="cite_ref-:4_21-0" class="reference"><a href="#cite_note-:4-21"><span class="cite-bracket">[</span>21<span class="cite-bracket">]</span></a></sup> <a href="Linux" title="Linux">Linux</a>-based and <a href="MacOS" title="MacOS">macOS</a> systems have terminal <a href="Emulator" title="Emulator">emulators</a> that can be used to create a direct connection to a MicroPython device's REPL using a serial <a href="USB" title="USB">USB</a> connection. The REPL assists with the immediate testing of parts of an <a href="Application_software" title="Application software">application</a> as each part of the code can be run and the results visually examined. Once different parts of code are loaded into the REPL, additional REPL features can be used to experiment with that code's functionality.<sup id="cite_ref-:0_17-2" class="reference"><a href="#cite_note-:0-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup>
</p><p>Helpful REPL commands (once connected to a serial console):<sup id="cite_ref-:4_21-1" class="reference"><a href="#cite_note-:4-21"><span class="cite-bracket">[</span>21<span class="cite-bracket">]</span></a></sup>
</p>
<ul><li><style data-mw-deduplicate="TemplateStyles:r1249182868">
/* start https://en.wikipedia.org/ */


.mw-parser-output .keyboard-key{border:1px solid #aaa;border-radius:0.2em;box-shadow:0.1em 0.1em 0.2em rgba(0,0,0,0.1);background-color:var(--background-color-neutral-subtle,#f8f9fa);background-image:linear-gradient(to bottom,var(--background-color-neutral,#eaecf0),var(--background-color-neutral-subtle,#f8f9fa),var(--background-color-neutral,#eaecf0));color:var(--color-base,#202122);padding:0.1em 0.3em;font-family:inherit;font-size:0.85em}


/* end https://en.wikipedia.org/ */
</style><kbd class="keyboard-key nowrap">CTRL</kbd>+<kbd class="keyboard-key nowrap">C</kbd>: keyboard interrupt</li>
<li><kbd class="keyboard-key nowrap">CTRL</kbd>+<kbd class="keyboard-key nowrap">D</kbd>: reload</li>
<li><code class="mw-highlight mw-highlight-lang-python mw-content-ltr" style="" dir="ltr"><span class="n">help</span><span class="p">()</span></code>: help message</li>
<li><code class="mw-highlight mw-highlight-lang-python mw-content-ltr" style="" dir="ltr"><span class="n">help</span><span class="p">(</span><span class="s2">"modules"</span><span class="p">)</span></code>: lists built-in <a href="Modules_Environment" class="mw-redirect" title="Modules Environment">modules</a></li>
<li><code class="mw-highlight mw-highlight-lang-python mw-content-ltr" style="" dir="ltr"><span class="kn">import</span><span class="w"> </span><span class="nn">board</span></code><kbd class="keyboard-key nowrap">↵ Enter</kbd><code class="mw-highlight mw-highlight-lang-python mw-content-ltr" style="" dir="ltr"><span class="nb">dir</span><span class="p">(</span><span class="n">board</span><span class="p">)</span></code>: lists all the pins on your microcontroller board that are available to be used in a program's code</li></ul>
<div class="mw-heading mw-heading3"><h3 id="Limitations">Limitations</h3></div>
<p>Although MicroPython fully implements Python language version 3.4 and much of 3.5, it does not implement all language features introduced from 3.5 onwards,<sup id="cite_ref-22" class="reference"><a href="#cite_note-22"><span class="cite-bracket">[</span>22<span class="cite-bracket">]</span></a></sup> though some new syntax from 3.6 and more recent features from later versions, e.g. from 3.8 (assignment expressions) and 3.9. It includes a subset of the standard library.<sup id="cite_ref-23" class="reference"><a href="#cite_note-23"><span class="cite-bracket">[</span>23<span class="cite-bracket">]</span></a></sup>
</p><p>MicroPython has more limited hardware support in the microcontroller market than other popular platforms, like <a href="Arduino" title="Arduino">Arduino</a> with a smaller number of microcontroller choices that support the language.<sup id="cite_ref-:1_18-1" class="reference"><a href="#cite_note-:1-18"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup> MicroPython does not include an <a href="Integrated_development_environment" title="Integrated development environment">integrated development environment</a> (IDE) or specific editor unlike other platforms.<sup id="cite_ref-:1_18-2" class="reference"><a href="#cite_note-:1-18"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Syntax_and_semantics">Syntax and semantics</h2></div>
<p>MicroPython's <a href="Syntax_(programming_languages)" title="Syntax (programming languages)">syntax</a> is adopted from Python, due to its clear and easy-to-understand style and power.<sup id="cite_ref-24" class="reference"><a href="#cite_note-24"><span class="cite-bracket">[</span>24<span class="cite-bracket">]</span></a></sup> Unlike most other programming languages less punctuation is used with fewer syntactical machinations in order to prioritise readability.<sup id="cite_ref-:0_17-3" class="reference"><a href="#cite_note-:0-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Code_blocks">Code blocks</h3></div>
<p>MicroPython adopts Python's code block style, with code specific to a particular <a href="Function_(computer_programming)" title="Function (computer programming)">function</a>, condition or loop being indented.<sup id="cite_ref-:0_17-4" class="reference"><a href="#cite_note-:0-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup> This differs from most other languages which typically use symbols or keywords to delimit blocks.<sup id="cite_ref-:0_17-5" class="reference"><a href="#cite_note-:0-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup> This assists with the readability of MicroPython code as the visual structure mirrors the semantic structure. This key feature is simple but important as misused indentation can result in code executing under a wrong condition or an overall error from the <a href="Interpreter_(computing)" title="Interpreter (computing)">interpreter</a>.<sup id="cite_ref-:0_17-6" class="reference"><a href="#cite_note-:0-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup>
</p><p>A colon (:) is the key symbol used to indicate the ending of a condition statement.<sup id="cite_ref-:0_17-7" class="reference"><a href="#cite_note-:0-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup> The indent size is equivalent to one tab or 4 spaces.
</p>
<div class="mw-heading mw-heading3"><h3 id="Operations">Operations</h3></div>
<p>MicroPython has the ability to perform various mathematical operations using primitive and logical operations.<sup id="cite_ref-:2_19-1" class="reference"><a href="#cite_note-:2-19"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup>
</p>
<table class="wikitable">
<caption>Supported operations<sup id="cite_ref-:2_19-2" class="reference"><a href="#cite_note-:2-19"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup>
</caption>
<tbody><tr>
<th>Type</th>
<th>Operator</th>
<th>Name</th>
<th>Example
</th></tr>
<tr>
<td rowspan="5">Arithmetic</td>
<td><style data-mw-deduplicate="TemplateStyles:r886049734">
/* start https://en.wikipedia.org/ */


.mw-parser-output .monospaced{font-family:monospace,monospace}


/* end https://en.wikipedia.org/ */
</style><span class="monospaced">+</span></td>
<td>Addition</td>
<td><span class="monospaced">variable + 1</span>
</td></tr>
<tr>
<td><span class="monospaced">-</span></td>
<td>Subtraction</td>
<td><span class="monospaced">variable - 1</span>
</td></tr>
<tr>
<td><span class="monospaced">*</span></td>
<td>Multiplication</td>
<td><span class="monospaced">variable * 4</span>
</td></tr>
<tr>
<td><span class="monospaced">/</span></td>
<td>Division</td>
<td><span class="monospaced">variable / 4</span>
</td></tr>
<tr>
<td><span class="monospaced">%</span></td>
<td>Modulo division</td>
<td><span class="monospaced">variable&nbsp;% 4</span>
</td></tr>
<tr>
<td rowspan="6">Comparison</td>
<td><span class="monospaced">==</span></td>
<td>Equals</td>
<td><span class="monospaced">expression1 == expression2</span>
</td></tr>
<tr>
<td><span class="monospaced">!=</span></td>
<td>Not equal</td>
<td><span class="monospaced">expression1&nbsp;!= expression2</span>
</td></tr>
<tr>
<td><span class="monospaced">&lt;</span></td>
<td>Less than</td>
<td><span class="monospaced">expression1 &lt; expression2</span>
</td></tr>
<tr>
<td><span class="monospaced">&gt;</span></td>
<td>Greater than</td>
<td><span class="monospaced">expression1 &gt; expression2</span>
</td></tr>
<tr>
<td><span class="monospaced">&lt;=</span></td>
<td>Less than or equals</td>
<td><span class="monospaced">expression1 &lt;= expression2</span>
</td></tr>
<tr>
<td><span class="monospaced">&gt;=</span></td>
<td>Greater than or equals</td>
<td><span class="monospaced">expression1 &gt;= expression2</span>
</td></tr>
<tr>
<td rowspan="6">Logical</td>
<td><span class="monospaced">&amp;</span></td>
<td><a href="Bitwise_operation" title="Bitwise operation">bitwise</a> and</td>
<td><span class="monospaced">variable1 &amp; variable2</span>
</td></tr>
<tr>
<td><span class="monospaced">|</span></td>
<td>bitwise or</td>
<td><span class="monospaced">variable1 | variable2</span>
</td></tr>
<tr>
<td><span class="monospaced">^</span></td>
<td>bitwise exclusive or</td>
<td><span class="monospaced">variable1 ^ variable2</span>
</td></tr>
<tr>
<td><span class="monospaced">~</span></td>
<td>bitwise complement</td>
<td><span class="monospaced">~variable1</span>
</td></tr>
<tr>
<td><span class="monospaced">and</span></td>
<td>logical and</td>
<td><span class="monospaced">variable1 and variable2</span>
</td></tr>
<tr>
<td><span class="monospaced">or</span></td>
<td>logical or</td>
<td><span class="monospaced">variable1 or variable2</span>
</td></tr></tbody></table>
<div class="mw-heading mw-heading3"><h3 id="Libraries">Libraries</h3></div>
<p>MicroPython is a lean and efficient implementation of Python with libraries similar to those in Python.<sup id="cite_ref-25" class="reference"><a href="#cite_note-25"><span class="cite-bracket">[</span>25<span class="cite-bracket">]</span></a></sup> Some standard Python libraries have an equivalent library in MicroPython renamed to distinguish between the two. MicroPython libraries are smaller with less popular features removed or modified to save <a href="Memory_management" title="Memory management">memory</a>.<sup id="cite_ref-:2_19-3" class="reference"><a href="#cite_note-:2-19"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup>
</p><p>The three types of libraries in MicroPython:<sup id="cite_ref-:2_19-4" class="reference"><a href="#cite_note-:2-19"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup>
</p>
<ul><li>derived from a standard Python library (built-in libraries)</li>
<li>specific MicroPython libraries</li>
<li>specific libraries to assist with hardware functionality</li></ul>
<p>MicroPython is highly customisable and configurable, with language differing between each board (<a href="Microcontroller" title="Microcontroller">microcontroller</a>) and the availability of libraries may differ. Some functions and classes in a module or the entire module may be unavailable or altered.<sup id="cite_ref-:2_19-5" class="reference"><a href="#cite_note-:2-19"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup>
</p>
<table class="wikitable">
<caption>Standard Python libraries in MicroPython<sup id="cite_ref-MP-Website_4-1" class="reference"><a href="#cite_note-MP-Website-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup>
</caption>
<tbody><tr>
<th>Library name</th>
<th>Description
</th></tr>
<tr>
<td>array</td>
<td>operations on <a href="Array_data_structure" class="mw-redirect" title="Array data structure">arrays</a>
</td></tr>
<tr>
<td>cmath</td>
<td>provides math functions for <a href="Complex_number" title="Complex number">complex numbers</a>
</td></tr>
<tr>
<td>gc</td>
<td><a href="Garbage_collection_(computer_science)" title="Garbage collection (computer science)">garbage collector</a>
</td></tr>
<tr>
<td>math</td>
<td>provides basic math operations for <a href="Floating_point_numbers" class="mw-redirect" title="Floating point numbers">floating-point numbers</a>
</td></tr>
<tr>
<td>sys</td>
<td>system-level functions; provides access to variables used by the interpreter
</td></tr>
<tr>
<td>binascii</td>
<td>functions for converting between <a href="Binary_number" title="Binary number">binary</a> and <a href="ASCII" title="ASCII">ASCII</a>
</td></tr>
<tr>
<td>collections</td>
<td>operations for collections and container types that hold various objects
</td></tr>
<tr>
<td>errno</td>
<td>provides access to error codes
</td></tr>
<tr>
<td>hashlib</td>
<td>operations for binary <a href="Hash_function" title="Hash function">hash algorithms</a>
</td></tr>
<tr>
<td>heapq</td>
<td>operations to implement <a href="Heap_(data_structure)" title="Heap (data structure)">heap queue algorithm</a>
</td></tr>
<tr>
<td>io</td>
<td>operations for handling <a href="Input/output" title="Input/output">input/output</a> streams
</td></tr>
<tr>
<td>json</td>
<td>handles conversion between <a href="JSON" title="JSON">JSON</a> documents and Python objects
</td></tr>
<tr>
<td>os</td>
<td>functions for <a href="File_system" title="File system">filesystem</a> access and basic <a href="Operating_system" title="Operating system">operating system</a> functions
</td></tr>
<tr>
<td>re</td>
<td>implements regular expression matching operations
</td></tr>
<tr>
<td>select</td>
<td>functions for handling events on multiple streams
</td></tr>
<tr>
<td>socket</td>
<td>connecting to sockets (networks), providing access to socket interface
</td></tr>
<tr>
<td>struct</td>
<td>performs conversions to Python objects by packing and unpacking <a href="Primitive_data_type" title="Primitive data type">primitive data types</a>
</td></tr>
<tr>
<td>time</td>
<td>provides time and date function, including measuring time intervals and implementing delays
</td></tr>
<tr>
<td>zlib</td>
<td>operations to decompress binary data
</td></tr></tbody></table>
<table class="wikitable">
<caption>MicroPython-specific libraries<sup id="cite_ref-MP-Website_4-2" class="reference"><a href="#cite_note-MP-Website-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup>
</caption>
<tbody><tr>
<th>Library name</th>
<th>Description
</th></tr>
<tr>
<td>framebuf</td>
<td>provides a <a href="Framebuffer" title="Framebuffer">frame buffer</a> that can be used to create <a href="Bitmap" title="Bitmap">bitmap</a> images to be sent to a display
</td></tr>
<tr>
<td>machine</td>
<td>functions assisting with accessing and interacting with hardware blocks
</td></tr>
<tr>
<td>micropython</td>
<td>access and control of MicroPython internals
</td></tr>
<tr>
<td>network</td>
<td>assists with installing network driver, allowing interactions through networks
</td></tr>
<tr>
<td>ctypes</td>
<td>access binary data structures
</td></tr></tbody></table>
<div class="mw-heading mw-heading3"><h3 id="Custom_MicroPython_libraries">Custom MicroPython libraries</h3></div>
<p>When developers begin to create a new application, standard MicroPython libraries and drivers may not meet the requirements, with insufficient operations or calculations. Similar to Python, there is the possibility of extending MicroPython's functionality with custom libraries which extend the ability of the existing libraries and firmware.<sup id="cite_ref-:3_20-2" class="reference"><a href="#cite_note-:3-20"><span class="cite-bracket">[</span>20<span class="cite-bracket">]</span></a></sup>
</p><p>In MicroPython, files ending with .py take preference over other library aliases which allows users to extend the use and implementation of the existing libraries.<sup id="cite_ref-:2_19-6" class="reference"><a href="#cite_note-:2-19"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Supporting_hardware">Supporting hardware</h2></div>
<p>As MicroPython's implementation and popularity continues to grow, more boards have the ability to run MicroPython. Many developers are building processor specific versions that can be downloaded onto different microcontrollers.<sup id="cite_ref-:2_19-7" class="reference"><a href="#cite_note-:2-19"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup> Installing MicroPython on microcontrollers is well documented and user-friendly.<sup id="cite_ref-:3_20-3" class="reference"><a href="#cite_note-:3-20"><span class="cite-bracket">[</span>20<span class="cite-bracket">]</span></a></sup> MicroPython allows interactions between microcontroller hardware and applications to be simple, allowing access to a range of functionality while working in a resource constrained environment, with a strong level of responsiveness.<sup id="cite_ref-:0_17-8" class="reference"><a href="#cite_note-:0-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup>
</p><p>The two types of boards used to run MicroPython:<sup id="cite_ref-:2_19-8" class="reference"><a href="#cite_note-:2-19"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup>
</p>
<ul><li>MicroPython loaded when manufactured, meaning only MicroPython can be run.</li>
<li>boards that have firmware that allows MicroPython to be installed to the board.</li></ul>
<div class="mw-heading mw-heading3"><h3 id="Executing_code">Executing code</h3></div>
<p>To move a program onto a MicroPython board, create a file and copy it onto the microcontroller in order to execute. With the hardware connected to a device, such as a <a href="Computer" title="Computer">computer</a>, the board's <a href="Flashdrive" class="mw-redirect" title="Flashdrive">flash drive</a> will appear on the device allowing files to be moved to the flash drive. There will be two existing python files, boot.py and main.py that are typically not modified, main.py may be modified if you wish to run the program every time the microcontroller is <a href="Booting" title="Booting">booted</a>, otherwise, programs will be run using the REPL console.<sup id="cite_ref-:2_19-9" class="reference"><a href="#cite_note-:2-19"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Pyboard">Pyboard</h3></div>
<p>The pyboard is the official MicroPython microcontroller board which fully supports MicroPython's software features. The pyboard's hardware features include:<sup id="cite_ref-MP-Website_4-3" class="reference"><a href="#cite_note-MP-Website-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup>
</p>
<ul><li><a href="Microcontroller" title="Microcontroller">microcontroller</a> (MCU consisting of <a href="Central_processing_unit" title="Central processing unit">CPU</a>, flash <a href="Read-only_memory" title="Read-only memory">ROM</a> and <a href="Random-access_memory" title="Random-access memory">RAM</a>)</li>
<li><a href="MicroUSB" class="mw-redirect" title="MicroUSB">microUSB</a> connector</li>
<li><a href="Micro-SD" class="mw-redirect" title="Micro-SD">micro-SD</a> card slot</li>
<li>IO pins</li>
<li><a href="Switch" title="Switch">switches</a>, <a href="LEDs" class="mw-redirect" title="LEDs">LEDs</a>, <a href="Servomotor" title="Servomotor">servo</a> ports, <a href="Real-time_clock" title="Real-time clock">real time clock</a>, <a href="Accelerometer" title="Accelerometer">accelerometer</a></li></ul>
<div class="mw-heading mw-heading4"><h4 id="The_booting_process">The booting process</h4></div>
<p>The pyboard contains an internal drive with filesystem named <code>/flash</code> which is stored within the board's flash memory, additionally, a <a href="MicroSD" class="mw-redirect" title="MicroSD">microSD</a> card can be inserted into a slot and is accessible through <code>/sd</code>. When booted up, a pyboard must select a filesystem to boot from either <code>/flash</code> or <code>/sd</code> with the current directory being set to either <code>/flash</code> or <code>/sd</code>. By default, if an SD card is inserted, <code>/sd</code> will be used, if not, <code>/flash</code> is used. If needed, the use of the SD card for the booting process can be avoided by creating an empty file called <code>/flash/SKIPSD</code> which is stored on the board flash memory to skip the SD card for the booting process.<sup id="cite_ref-MP-Website_4-4" class="reference"><a href="#cite_note-MP-Website-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading4"><h4 id="Boot_modes">Boot modes</h4></div>
<p>When the pyboard is powered up normally or the reset button is pressed then the pyboard is booted in a standard mode, meaning that the boot.py file is executed, then the USB configured and finally the python program will run.<sup id="cite_ref-MP-Website_4-5" class="reference"><a href="#cite_note-MP-Website-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup>
</p><p>There is an ability to override the standard boot sequence through holding down the user switch whilst the board is in the booting process and then pressing reset as you continue to hold the user switch. The pyboard's LEDs will flick between modes and once the LEDs have reached the mode wanted by the user, they can let go of the user switch and the board will boot in the specific mode.<sup id="cite_ref-MP-Website_4-6" class="reference"><a href="#cite_note-MP-Website-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup>
</p><p>the boot modes are:<sup id="cite_ref-MP-Website_4-7" class="reference"><a href="#cite_note-MP-Website-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup>
</p>
<ul><li>standard boot: green LED only (runs boot.py then python program)</li>
<li>safe boot: orange LED only (does not run any scripts during boot-up)</li>
<li>filesystem reset: green and orange LED together (resets flash drive to factory state and boots in safe mode) – used as a fix when filesystem is corrupted</li></ul>
<div class="mw-heading mw-heading4"><h4 id="Errors">Errors</h4></div>
<ul><li>if red and green LEDs flash alternatively then the python script has an error, and you must use the REPL to <a href="Debugging" title="Debugging">debug</a>.</li>
<li>if all 4 LEDs cycle on and off then there is a hard fault which cannot be recovered from and requires a hard reset.<sup id="cite_ref-MP-Website_4-8" class="reference"><a href="#cite_note-MP-Website-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Programming_examples">Programming examples</h2></div>
<p>Source:<sup id="cite_ref-:2_19-10" class="reference"><a href="#cite_note-:2-19"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup>
</p><p><a href="%22Hello%2C_World!%22_program" title="&quot;Hello, World!&quot; program">Hello world</a> program:
</p>
<div class="mw-highlight mw-highlight-lang-python mw-content-ltr" dir="ltr"><pre><span class="c1"># Print to serial console</span>

<span class="nb">print</span><span class="p">(</span><span class="s2">"Hello, World!"</span><span class="p">)</span>
</pre></div>
<p>Importing + turning on a LED:
</p>
<div class="mw-highlight mw-highlight-lang-python mw-content-ltr mw-highlight-lines" dir="ltr"><pre><span class="kn">import</span><span class="w"> </span><span class="nn">pyb</span>

<span class="c1"># Turn LED on</span>

<span class="n">pyb</span><span class="o">.</span><span class="n">LED</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="o">.</span><span class="n">on</span><span class="p">()</span>
</pre></div>
<p>Reading a file + loop:
</p>
<div class="mw-highlight mw-highlight-lang-python mw-content-ltr mw-highlight-lines" dir="ltr"><pre><span class="kn">import</span><span class="w"> </span><span class="nn">os</span>

<span class="c1"># Open and read a file</span>

<span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="s2">"/readme.txt"</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
<span class="nb">print</span><span class="p">(</span><span class="n">f</span><span class="o">.</span><span class="n">read</span><span class="p">())</span>
</pre></div>
<div class="mw-heading mw-heading2"><h2 id="Bytecode">Bytecode</h2></div>
<p>MicroPython includes a <a href="Cross_compiler" title="Cross compiler">cross compiler</a> which generates MicroPython <a href="Bytecode" title="Bytecode">bytecode</a> (file extension <i>.mpy</i>). The Python code can be compiled into the bytecode either directly on a microcontroller or it can be precompiled elsewhere.
</p><p>MicroPython firmware can be built without the compiler, leaving only the <a href="Virtual_machine" title="Virtual machine">virtual machine</a> which can run the precompiled <i>mpy</i> programs.
</p>
<div class="mw-heading mw-heading2"><h2 id="Implementation_and_uses">Implementation and uses</h2></div>
<p>MicroPython is utilised through firmware being loaded by standard software onto a particular microcontroller into flash memory, communicating using a terminal application loaded onto a computer that emulates a serial interface.<sup id="cite_ref-:3_20-4" class="reference"><a href="#cite_note-:3-20"><span class="cite-bracket">[</span>20<span class="cite-bracket">]</span></a></sup>
</p><p>The main uses of MicroPython can be generalised into 3 categories:<sup id="cite_ref-:3_20-5" class="reference"><a href="#cite_note-:3-20"><span class="cite-bracket">[</span>20<span class="cite-bracket">]</span></a></sup>
</p>
<ul><li><b>educational purposes</b>: using MicroPython's read–eval–print Loop (REPL) to interact with a microcontroller, it is possible to visually explain the concepts of data processing and communicating with boards in a simpler way than more complicated programming languages.</li>
<li><b>developing and testing device and sensor designs</b>: MicroPython offers verified, bug-free, and thoroughly tested reference implementations of interfaces used in microcontrollers solving a common developer's task of implementing peripheral communication setup and control. MicroPython offers direct and interactive accessibility to device registers which makes it easy to verify functionality and develop and test hardware parts and devices and algorithms for control and acquiring data from a device.</li>
<li><b>monitoring and configuring tool for design of complex applications</b>: certain applications require specific applications on high performing microcontrollers. MicroPython is able to assist with state monitoring and set-up of system parameters.</li></ul>
<p>Implementation of MicroPython can differ depending on the availability of standard and supporting libraries and the microcontroller's flash memory and RAM size.<sup id="cite_ref-:3_20-6" class="reference"><a href="#cite_note-:3-20"><span class="cite-bracket">[</span>20<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<ul><li><a href="Espruino" title="Espruino">Espruino</a></li>
<li><a href="CircuitPython" title="CircuitPython">CircuitPython</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */


.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}


/* end https://en.wikipedia.org/ */
</style><div class="reflist">
<div class="mw-references-wrap mw-references-columns"><ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */


.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}


/* end https://en.wikipedia.org/ */
</style><cite id="CITEREFGeorge2014" class="citation web cs1">George, Damien P. (4 May 2014). <a rel="nofollow" class="external text" href="https://github.com/micropython/micropython/blob/master/LICENSE">"micropython/LICENSE at master · micropython/micropython"</a>. <i><a href="GitHub" title="GitHub">GitHub</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">11 February</span> 2017</span>.</cite></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><cite id="CITEREFVenkataramanan2013" class="citation magazine cs1">Venkataramanan, Madhumita (6 December 2013). <a rel="nofollow" class="external text" href="https://www.wired.co.uk/article/micro-python">"Micro Python: more powerful than Arduino, simpler than the Raspberry Pi"</a>. <i>Wired</i><span class="reference-accessdate">. Retrieved <span class="nowrap">15 December</span> 2016</span>.</cite></span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"><cite id="CITEREFYegulalp2014" class="citation news cs1">Yegulalp, Serdar (5 July 2014). <a rel="nofollow" class="external text" href="http://www.infoworld.com/article/2608012/python/micro-python-s-tiny-circuits--python-variant-targets-microcontrollers.html">"Micro Python's tiny circuits: Python variant targets microcontrollers"</a>. InfoWorld<span class="reference-accessdate">. Retrieved <span class="nowrap">15 December</span> 2016</span>.</cite></span>
</li>
<li id="cite_note-MP-Website-4"><span class="mw-cite-backlink">^ <a href="#cite_ref-MP-Website_4-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-MP-Website_4-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-MP-Website_4-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-MP-Website_4-3"><sup><i><b>d</b></i></sup></a> <a href="#cite_ref-MP-Website_4-4"><sup><i><b>e</b></i></sup></a> <a href="#cite_ref-MP-Website_4-5"><sup><i><b>f</b></i></sup></a> <a href="#cite_ref-MP-Website_4-6"><sup><i><b>g</b></i></sup></a> <a href="#cite_ref-MP-Website_4-7"><sup><i><b>h</b></i></sup></a> <a href="#cite_ref-MP-Website_4-8"><sup><i><b>i</b></i></sup></a></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://micropython.org/">"MicroPython - Python for microcontrollers"</a>. <i>micropython.org</i><span class="reference-accessdate">. Retrieved <span class="nowrap">12 August</span> 2017</span>.</cite></span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/micropython/micropython">"MicroPython on GitHub"</a>. <i><a href="GitHub" title="GitHub">GitHub</a></i>. 7 February 2022.</cite></span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.kickstarter.com/projects/214379695/micro-python-python-for-microcontrollers">"Micro Python: Python for microcontrollers"</a>. <i>Kickstarter</i>. 26 February 2016<span class="reference-accessdate">. Retrieved <span class="nowrap">15 December</span> 2016</span>.</cite></span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text"><cite id="CITEREFBeningo2016" class="citation news cs1">Beningo, Jacob (11 July 2016). <a rel="nofollow" class="external text" href="http://www.edn.com/electronics-blogs/embedded-basics/4442357/Prototype-to-production---MicroPython-under-the-hood">"Prototype to production: MicroPython under the hood"</a>. EDN Network<span class="reference-accessdate">. Retrieved <span class="nowrap">15 December</span> 2016</span>.</cite></span>
</li>
<li id="cite_note-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-8">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://mischianti.org/micropython-on-nucleo-stm32-stm32f411ce-and-stm32f401cc-flashing-firmware-and-basic-tools/">"MicroPython on Nucleo STM32, STM32F411CE, and STM32F401CC: flashing firmware and basic tools"</a>. <i>Mischianti</i>. August 2023.</cite></span>
</li>
<li id="cite_note-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-9">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://mischianti.org/micropython-with-esp8266-and-esp32-flashing-firmware-and-programming-with-basic-tools-1/">"MicroPython with esp8266 and esp32: flashing firmware and programming with basic tools"</a>. <i>Mischianti</i>. 7 June 2023.</cite></span>
</li>
<li id="cite_note-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-10">^</a></b></span> <span class="reference-text"><cite id="CITEREFGeorge" class="citation web cs1">George, Damien P. <a rel="nofollow" class="external text" href="https://github.com/micropython/micropython/tree/master/ports">"micropython/ports at master · micropython/micropython"</a>. <i>GitHub</i><span class="reference-accessdate">. Retrieved <span class="nowrap">22 October</span> 2019</span>.</cite></span>
</li>
<li id="cite_note-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-11">^</a></b></span> <span class="reference-text"><cite id="CITEREFSokolovsky" class="citation web cs1">Sokolovsky, Paul. <a rel="nofollow" class="external text" href="https://github.com/pfalcon/awesome-micropython#forks-and-variants">"Awesome MicroPython"</a>. <i>GitHub</i><span class="reference-accessdate">. Retrieved <span class="nowrap">22 October</span> 2019</span>.</cite></span>
</li>
<li id="cite_note-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-12">^</a></b></span> <span class="reference-text"><cite id="CITEREFWilliams2015" class="citation web cs1">Williams, Alun (7 July 2015). <a rel="nofollow" class="external text" href="http://www.electronicsweekly.com/news/design/embedded-systems/video-bbc-micro-bit-user-interface-2015-07/">"Hands on with the BBC Micro-Bit user interface"</a>. <i>ElectronicsWeekly.com</i><span class="reference-accessdate">. Retrieved <span class="nowrap">8 July</span> 2015</span>.</cite></span>
</li>
<li id="cite_note-13"><span class="mw-cite-backlink"><b><a href="#cite_ref-13">^</a></b></span> <span class="reference-text"><cite id="CITEREFShawcroft2019" class="citation web cs1">Shawcroft, Scott (22 May 2019). <a rel="nofollow" class="external text" href="https://blog.adafruit.com/2019/05/22/circuitpython-4-0-1-released/">"CircuitPython 4.0.1 released!"</a>. <i>Adafruit Blog</i>. Adafruit Industries<span class="reference-accessdate">. Retrieved <span class="nowrap">11 June</span> 2019</span>.</cite></span>
</li>
<li id="cite_note-14"><span class="mw-cite-backlink"><b><a href="#cite_ref-14">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://content.riscv.org/wp-content/uploads/2017/12/RISC-V-Poster-Preview.pdf">"RISC-V Poster Preview — 7th RISC-V Workshop"</a> <span class="cs1-format">(PDF)</span>. 28 November 2017<span class="reference-accessdate">. Retrieved <span class="nowrap">17 December</span> 2018</span>.</cite></span>
</li>
<li id="cite_note-15"><span class="mw-cite-backlink"><b><a href="#cite_ref-15">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.ev3dev.org/news/2019/04/13/ev3-micropython/">"LEGO releases MicroPython for EV3 based on ev3dev and Pybricks"</a>. <i>www.ev3dev.org</i><span class="reference-accessdate">. Retrieved <span class="nowrap">21 April</span> 2020</span>.</cite></span>
</li>
<li id="cite_note-16"><span class="mw-cite-backlink"><b><a href="#cite_ref-16">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.raspberrypi.org/blog/raspberry-pi-silicon-pico-now-on-sale/">"Meet Raspberry Silicon: Raspberry Pi Pico now on sale at $4"</a>. <i>www.raspberrypi.org</i>. 21 January 2021<span class="reference-accessdate">. Retrieved <span class="nowrap">21 January</span> 2021</span>.</cite></span>
</li>
<li id="cite_note-:0-17"><span class="mw-cite-backlink">^ <a href="#cite_ref-:0_17-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:0_17-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-:0_17-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-:0_17-3"><sup><i><b>d</b></i></sup></a> <a href="#cite_ref-:0_17-4"><sup><i><b>e</b></i></sup></a> <a href="#cite_ref-:0_17-5"><sup><i><b>f</b></i></sup></a> <a href="#cite_ref-:0_17-6"><sup><i><b>g</b></i></sup></a> <a href="#cite_ref-:0_17-7"><sup><i><b>h</b></i></sup></a> <a href="#cite_ref-:0_17-8"><sup><i><b>i</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFAlsabbagh2019" class="citation book cs1">Alsabbagh, Marwan (2019). <i>MicroPython Cookbook</i>. Birmingham, UK: <a href="Packt_Publishing" class="mw-redirect" title="Packt Publishing">Packt Publishing</a>.</cite></span>
</li>
<li id="cite_note-:1-18"><span class="mw-cite-backlink">^ <a href="#cite_ref-:1_18-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:1_18-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-:1_18-2"><sup><i><b>c</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFBruno2021" class="citation web cs1">Bruno, P. (25 November 2021). <a rel="nofollow" class="external text" href="https://all3dp.com/2/micropython-beginner-s-guide/">"An Introduction to MicroPython"</a>. <i>All3DP</i><span class="reference-accessdate">. Retrieved <span class="nowrap">9 May</span> 2022</span>.</cite></span>
</li>
<li id="cite_note-:2-19"><span class="mw-cite-backlink">^ <a href="#cite_ref-:2_19-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:2_19-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-:2_19-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-:2_19-3"><sup><i><b>d</b></i></sup></a> <a href="#cite_ref-:2_19-4"><sup><i><b>e</b></i></sup></a> <a href="#cite_ref-:2_19-5"><sup><i><b>f</b></i></sup></a> <a href="#cite_ref-:2_19-6"><sup><i><b>g</b></i></sup></a> <a href="#cite_ref-:2_19-7"><sup><i><b>h</b></i></sup></a> <a href="#cite_ref-:2_19-8"><sup><i><b>i</b></i></sup></a> <a href="#cite_ref-:2_19-9"><sup><i><b>j</b></i></sup></a> <a href="#cite_ref-:2_19-10"><sup><i><b>k</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFBell2017" class="citation book cs1"><a href="Charles_Bell" title="Charles Bell">Bell, Charles</a> (2017). <i>MicroPython for the Internet of Things</i>. Berkeley, USA: <a href="Apress" class="mw-redirect" title="Apress">Apress</a>.</cite></span>
</li>
<li id="cite_note-:3-20"><span class="mw-cite-backlink">^ <a href="#cite_ref-:3_20-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:3_20-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-:3_20-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-:3_20-3"><sup><i><b>d</b></i></sup></a> <a href="#cite_ref-:3_20-4"><sup><i><b>e</b></i></sup></a> <a href="#cite_ref-:3_20-5"><sup><i><b>f</b></i></sup></a> <a href="#cite_ref-:3_20-6"><sup><i><b>g</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFGasparKubaFlochovaDudak2020" class="citation conference cs1">Gaspar, G.; Kuba, P.; Flochova, J.; Dudak, J.; Florkova, Z. (2020). <i>Development of IoT applications based on the MicroPython platform for Industry 4.0 implementation</i>. 2020 19th International Conference on Mechatronics – Mechatronika (ME). pp.&nbsp;<span class="nowrap">1–</span>7.</cite></span>
</li>
<li id="cite_note-:4-21"><span class="mw-cite-backlink">^ <a href="#cite_ref-:4_21-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:4_21-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFRembor" class="citation web cs1">Rembor, K. <a rel="nofollow" class="external text" href="http://learn.adafruit.com/welcome-to-circuitpython/the-repl">"The REPL"</a>. <i>Welcome to CircuitPython!</i>. Adafruit Learning System<span class="reference-accessdate">. Retrieved <span class="nowrap">9 May</span> 2022</span>.</cite></span>
</li>
<li id="cite_note-22"><span class="mw-cite-backlink"><b><a href="#cite_ref-22">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://docs.micropython.org/en/latest/genrst/index.html">"MicroPython differences from CPython — MicroPython latest documentation"</a>. <i>docs.micropython.org</i>.</cite></span>
</li>
<li id="cite_note-23"><span class="mw-cite-backlink"><b><a href="#cite_ref-23">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.micropython.org">"MicroPython - Python for microcontrollers"</a>. <i>micropython.org</i>.</cite></span>
</li>
<li id="cite_note-24"><span class="mw-cite-backlink"><b><a href="#cite_ref-24">^</a></b></span> <span class="reference-text"><cite id="CITEREFWangLiZhangHan2021" class="citation conference cs1">Wang, L.; Li, Y.; Zhang, H.; Han, Q.; Chen, L. (2021). <i>An Efficient Control-flow based Obfuscator for Micropython Bytecode</i>. 2021 7th International Symposium on System and Software Reliability (ISSSR). pp.&nbsp;<span class="nowrap">54–</span>63.</cite></span>
</li>
<li id="cite_note-25"><span class="mw-cite-backlink"><b><a href="#cite_ref-25">^</a></b></span> <span class="reference-text"><cite id="CITEREFKhamphrooKwankeoKaemarungsiFukawa2017" class="citation conference cs1">Khamphroo, M.; Kwankeo, N.; Kaemarungsi, K.; Fukawa, K. (2017). <i>MicroPython-based educational mobile robot for computer coding learning</i>. 2017 8th International Conference of Information and Communication Technology for Embedded Systems (IC-ICTES). pp.&nbsp;<span class="nowrap">1–</span>6.</cite></span>
</li>
</ol></div></div>
<div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2></div>
<ul><li><span class="official-website"><span class="url"><a rel="nofollow" class="external text" href="https://micropython.org">Official website</a></span></span></li>
<li><a rel="nofollow" class="external text" href="https://github.com/micropython/micropython">micropython</a> on <a href="GitHub" title="GitHub">GitHub</a></li>
<li><a rel="nofollow" class="external text" href="https://www.youtube.com/watch?v=EvGhPmPPzko&amp;t=938s">GOTO 2016 • MicroPython &amp; the Internet of Things • Damien George</a> on <a href="YouTube" title="YouTube">YouTube</a></li>
<li><a rel="nofollow" class="external text" href="https://www.youtube.com/playlist?list=PLjF7R1fz_OOXrI15wuXeESA0aA4VzcWSi"><span class="">MicroPython</span></a> playlist on <a href="YouTube_playlist_(identifier)" class="mw-redirect" title="YouTube playlist (identifier)">YouTube</a> • Tutorials by Tony DiCola / <a href="Adafruit_Industries" title="Adafruit Industries">Adafruit</a></li></ul>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">
/* start https://en.wikipedia.org/ */


.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}


/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1236075235">
/* start https://en.wikipedia.org/ */


.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}


/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1239334494">
/* start https://en.wikipedia.org/ */


@media screen{html.skin-theme-clientpref-night .mw-parser-output div:not(.notheme)>.tmp-color,html.skin-theme-clientpref-night .mw-parser-output p>.tmp-color,html.skin-theme-clientpref-night .mw-parser-output table:not(.notheme) .tmp-color{color:inherit!important}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output div:not(.notheme)>.tmp-color,html.skin-theme-clientpref-os .mw-parser-output p>.tmp-color,html.skin-theme-clientpref-os .mw-parser-output table:not(.notheme) .tmp-color{color:inherit!important}}


/* end https://en.wikipedia.org/ */
</style></div><div role="navigation" class="navbox" aria-labelledby="Python379" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="3" style="background: #3467AC; color: #FCFCFC;"><style data-mw-deduplicate="TemplateStyles:r1239400231">
/* start https://en.wikipedia.org/ */


.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}


/* end https://en.wikipedia.org/ */
</style><div id="Python379" style="font-size:114%;margin:0 4em"><a href="Python_(programming_language)" title="Python (programming language)"><span class="tmp-color" style="color:#FCFCFC">Python</span></a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%;background: #FFCC55;"><a href="Programming_language_implementation" title="Programming language implementation">Implementations</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="CircuitPython" title="CircuitPython">CircuitPython</a></li>
<li><a href="CLPython" title="CLPython">CLPython</a></li>
<li><a href="CPython" title="CPython">CPython</a></li>
<li><a href="Cython" title="Cython">Cython</a></li>

<li><a href="Numba" title="Numba">Numba</a></li>
<li><a href="IronPython" title="IronPython">IronPython</a></li>
<li><a href="Jython" title="Jython">Jython</a></li>
<li><a href="Psyco" title="Psyco">Psyco</a></li>
<li><a href="PyPy" title="PyPy">PyPy</a></li>
<li><a href="Python_for_S60" title="Python for S60">Python for S60</a></li>
<li><a href="Shed_Skin" title="Shed Skin">Shed Skin</a></li>
<li><a href="Stackless_Python" title="Stackless Python">Stackless Python</a></li>
<li><a href="Unladen_Swallow" title="Unladen Swallow">Unladen Swallow</a></li>
<li><i><a href="List_of_Python_software#Python_implementations" title="List of Python software">more</a>...</i></li></ul>
</div></td><td class="noviewer navbox-image" rowspan="4" style="width:1px;padding:0 0 0 2px"><div><span typeof="mw:File"></span></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;background: #FFCC55;"><a href="Integrated_development_environment" title="Integrated development environment">IDEs</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Eric_(software)" title="Eric (software)">eric</a></li>
<li><a href="IDLE" title="IDLE">IDLE</a></li>
<li><a href="Ninja-IDE" title="Ninja-IDE">Ninja-IDE</a></li>
<li><a href="PyCharm" title="PyCharm">PyCharm</a></li>
<li><a href="PyDev" title="PyDev">PyDev</a></li>
<li><a href="Spyder_(software)" title="Spyder (software)">Spyder</a></li>
<li><i><a href="List_of_integrated_development_environments_for_Python" class="mw-redirect" title="List of integrated development environments for Python">more</a>...</i></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;background: #FFCC55;">Topics</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Web_Server_Gateway_Interface" title="Web Server Gateway Interface">WSGI</a></li>
<li><a href="Asynchronous_Server_Gateway_Interface" title="Asynchronous Server Gateway Interface">ASGI</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;background: #FFCC55;"><a href="Software_development" title="Software development">Designer</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Guido_van_Rossum" title="Guido van Rossum">Guido van Rossum</a></li></ul>
</div></td></tr><tr><td class="navbox-abovebelow hlist" colspan="3" style="background: #FFCC55;"><div>
<ul><li><a href="List_of_Python_software" title="List of Python software">Software</a> (list)</li>
<li><a href="Python_Software_Foundation" title="Python Software Foundation">Python Software Foundation</a></li>
<li><a href="Python_Conference" title="Python Conference">Python Conference</a> (PyCon)</li></ul>
</div></td></tr></tbody></table></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-02-03" href="https://en.wikipedia.org/wiki/?title=MicroPython&amp;oldid=1273691266">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>

</body></html>